package models;
import javax.swing.JOptionPane;
import views.MainFrame;
public class Utilities {
public static void showResultsPopUp(TaskScheduler scheduler, MainFrame f) {
int sum=0;
for (int i = 0; i < scheduler.getServers().length; i++) {
sum+=scheduler.getAverageServiceTime()[i];
}
String result = new String(
"Simulation time: " + scheduler.getSimulationTime() + " seconds" + "\nAverage waiting time: "
+ ((float) (TaskScheduler.getWaitingTime()+(float)sum)/(float)scheduler.getNrOfTasks()) + "\nRush hour: " + scheduler.getMaxRushHour());
JOptionPane.showMessageDialog(null, "Simulation is over!");
appendToLog(scheduler, "\n\n---->RESULTS<----\n" + result);
for (int i = 0; i < scheduler.getServers().length; i++) {
String r = new String("\nEmpty server time for server #" + i + " is: " + (scheduler.getEmptyTime()[i]));
appendToLog(scheduler, r);
}
for (int i = 0; i < scheduler.getServers().length; i++) {
String res = new String(
"\nService time for server #" + i + " is: " + (scheduler.getAverageServiceTime()[i]));
sum+=scheduler.getAverageServiceTime()[i];
appendToLog(scheduler, res);
}
f.setLog(scheduler.getLogText());
}
public static void setLogText(TaskScheduler scheduler, String s) {
synchronized (scheduler.textLog) {
scheduler.textLog = s;
scheduler.getFrame().setLog(scheduler.textLog);
}
}
public static void appendToLog(TaskScheduler scheduler, String s) {
synchronized (scheduler.textLog) {
scheduler.textLog += s;
}
}
public static Server getOptimalServer(TaskScheduler scheduler) {
Server[] servers = scheduler.getServers();
Server optimalServer = servers[0];
if (servers.length > 1) {
int min = servers[0].queueSize();
for (Server curr : servers) {
if (curr.getRunFlag() != false) {
if (curr.queueSize() < min) {
min = curr.queueSize();
optimalServer = curr;
}
}
}
}
return optimalServer;
}
}